package com.shujia.wyh.day23;

import java.io.FileInputStream;
import java.io.IOException;

/*
    字节输入流读取数据的第二种方式：一次读取一个字节数组
    public int read(byte[] b)

 */
public class FileInputStreamDemo2 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("out1.txt");

//        //public int read(byte[] b)
//        byte[] bytes = new byte[5];
//        //返回的是实际获取到的字节的长度
//        int i = fis.read(bytes);
//        System.out.println(i);
//        System.out.println("==========================");
//        for(byte b : bytes){
//            System.out.println((char) b);
//        }
//        System.out.println("=============================");
//        //字节数组转字符串
//        String s = new String(bytes, 0, i);
//        System.out.println(s);

        System.out.println("=============================");
        //字节输入流读取数据的第二种方式代码的最终版
//        byte[] bytes2 = new byte[5]; //一般情况下，这里给的大小是1024的倍数
        byte[] bytes2 = new byte[1024];
        int length = 0;
        //因为文件的结尾已经到达， -1 。
        while ((length=fis.read(bytes2))!=-1){
            String s1 = new String(bytes2, 0, length);
            System.out.println(s1);
        }

        //释放资源
    }
}
